package ca.venasse.pinventory.inventory.command;

import org.axonframework.domain.AggregateIdentifier;

import ca.venasse.pinventory.common.Money;
import ca.venasse.pinventory.common.Quantity;
import ca.venasse.pinventory.inventory.common.PartIdentifier;
import ca.venasse.pinventory.inventory.common.PartUrl;
import ca.venasse.pinventory.inventory.common.PurchaseDate;
import ca.venasse.pinventory.inventory.common.SupplierName;

public class PurchasePart {

	private final AggregateIdentifier aggregateIdentifier;
	private final PartIdentifier partIdentifier;
	private final PartUrl partUrl;
	private final PurchaseDate purchaseDate;
	private final Quantity quantity;
	private final SupplierName supplierName;
	private final Money unitCost;

	public PurchasePart(AggregateIdentifier aggregateIdentifier, PartIdentifier partIdentifier,
			SupplierName supplierName, PartUrl partUrl, PurchaseDate purchaseDate,
			Quantity quantity, Money unitCost) {
		this.aggregateIdentifier = aggregateIdentifier;
		this.partIdentifier = partIdentifier;
		this.supplierName = supplierName;
		this.partUrl = partUrl;
		this.purchaseDate = purchaseDate;
		this.quantity = quantity;
		this.unitCost = unitCost;
	}

	public AggregateIdentifier getAggregateIdentifier() {
		return this.aggregateIdentifier;
	}

	public PartIdentifier getPartIdentifier() {
		return this.partIdentifier;
	}

	public PartUrl getPartUrl() {
		return this.partUrl;
	}

	public PurchaseDate getPurchaseDate() {
		return this.purchaseDate;
	}

	public Quantity getQuantity() {
		return this.quantity;
	}

	public SupplierName getSupplierName() {
		return this.supplierName;
	}

	public Money getUnitCost() {
		return this.unitCost;
	}

}
